#ifndef EXTREME_C_EXAMPLES_CHAPTER_8_4_ANIMAL_P_H
#define EXTREME_C_EXAMPLES_CHAPTER_8_4_ANIMAL_P_H

// 指向 animal_sound 的不同形态的函数指针类型
typedef void (*sound_func_t)(void *);

// 前向声明
typedef struct
{
    char *name;
    // 该成员是一个指向函数的指针，执行实际的声音行为
    sound_func_t sound_func;
} animal_t;

#endif